Conclusions

Let's sum up what we’ve learned in this course.

Before we conclude, we’d like to congratulate you for completing such a challenging course!

In this course, we learned system design activity from the lens of basic building blocks—the fundamental subsystems that combine to make a bigger system. Doing so enabled us to focus on the specific business use cases instead of repeating the recurring concepts.

We carefully selected our design problems from many different domains, and we've made an explicit effort to incorporate some unique aspects or issues of system design activity in each of them.

Unique Aspects of Each Design Problem

Design Problem

Unique Aspect of Design

YouTube

Building custom data stores like Vitess and BigTable to meet scalability needs

Quora

Vertical sharding of MySQL database to meet the scalability requirements

Google Maps

The use of segmentation of a map to meet scalability needs and achieve high performance

Yelp

Usage of Quadtrees for speedy access to spatial data

Uber

Improved payment service to ensure fraud detection, and matching the driver and rider on maps

Twitter

The use of client-side load balancers for multiple services that had thousands of instances in order to reduce latency

Newsfeed

A recommendation system to ensure ranking and feed suggestions

Instagram

A perfect example of how different building blocks combine to build a scalable and performant system

TinyURL

Encoding IDs in the base-58 system for generating unique short URLs

Web crawler

Detection, identification, and resolution of Web crawler traps

WhatsApp

Message management for offline users

Typeahead

The usage of an efficient trie data structure to provide suggestions

Google Docs

Concurrency management for simultaneous writes, using techniques like operational transformation (OT) and Conflict-free Replicated Data Type (CRDT)

At this point, we’ve built our system design toolbox, and we can now pick the right tools for the job at hand. We hope that this course has helped you gain enough knowledge to design new problems and solutions using our building blocks. Let’s put our system design knowledge to work and build great systems!

Finally, we would like to thank you for taking the time to complete this course! We hope that it was a great experience for you. Please feel free to drop us an email or leave a comment on our community forum about any suggestions that you may have.

— Team Educative

AWS Wide Spread Outage
Mark as Completed